perm filename C[4,BGB] blob
sn#013952 filedate 1972-11-29 generic text, type T, neo UTF8
00100 ; ALTERNATE PDP-10 MNEMONICS.
00200
00300 OPDEF LIP[HLR]↔OPDEF LAP[HRR]
00400 OPDEF DIP[HRLM]↔OPDEF DAP[HRRM]
00500 OPDEF CAR[HLRZ]↔OPDEF CDR[HRRZ]
00600 OPDEF DIPZ[HRLZM]↔OPDEF DAPZ[HRRZM]
00700
00800 OPDEF ZIP[HRRZS]↔OPDEF ZAP[HLLZS]
00900 OPDEF WIP[HRROS]↔OPDEF WAP[HRRZS]
01000 OPDEF NIP[HLRE]↔OPDEF NAP[HRRE]↔OPDEF NIM[HRREI]
01100 OPDEF LAC[MOVE]↔OPDEF DAC[MOVEM]
01200 OPDEF SLAC[MOVS]
01300
01400 OPDEF GO[JRST]
01500 OPDEF LACI[MOVEI]↔OPDEF SLACI[MOVSI]
01600 OPDEF LAPI[HRRI]↔OPDEF LIPI[HRLI]
01700 OPDEF LACN[MOVN]↔OPDEF DACN[MOVNM]
01800 OPDEF LACM[MOVM]↔OPDEF DACM[MOVMM]
01900
02000 OPDEF FIXX[FIX 233000]↔OPDEF FLOAT[FSC 233]
00100 ; SAIL LIKE SUBROUTINE LINKAGE.
00200 ↓P ←← 17
00300 DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
00400 DEFINE CALL(NAME,X1,X2,X3,X4){
00500 IFDIF <> <X1> {PUSH P,X1
00600 IFDIF <> <X2> {PUSH P,X2
00700 IFDIF <> <X3> {PUSH P,X3
00800 IFDIF <> <X4> {PUSH P,X4}}}}
00900 PUSHJ P,NAME}
01000
01100 ;ARGUMENT FETCH.
01200 DEFINE ARG1<-1(17)>
01300 DEFINE ARG2<-2(17)>
01400 DEFINE ARG3<-3(17)>
01500 DEFINE ARG4<-4(17)>
01600
01700 ;CALL AND RETURN VALUE.
01800 DEFINE SETQ (VAR,LIST){
01900 CALL(LIST)
02000 DAC 1,VAR}
02100
02200 ;RETURN FROM AN N-ARGUMENT SUBROUTINE CALL.
02300 DEFINE POP0J <POPJ 17,>
02400 ↓POP1J.: SUB 17,[XWD 2,2]↔GO @2(17)↔ DEFINE POP1J<GO POP1J.>
02500 ↓POP2J.: SUB 17,[XWD 3,3]↔GO @3(17)↔ DEFINE POP2J<GO POP2J.>
02600 ↓POP3J.: SUB 17,[XWD 4,4]↔GO @4(17)↔ DEFINE POP3J<GO POP3J.>
02700 ↓POP4J.: SUB 17,[XWD 5,5]↔GO @5(17)↔ DEFINE POP4J<GO POP4J.>
02800
02900 ;ACCUMULATOR TRANSPARENCY.
03000 FOR @$ I←0,17{↓AC$I: 0↔}
03100 DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
03200 DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
03300
03400 ;MACROS FOR ALLOCATING AND NAMING WORKING SPACE.
03500 DEFINE ACCUMULATORS(LIST){ACPTR←←2
03600 FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
03700 DEFINE DECLARE (LIST){
03800 FOR VARNAM⊂(LIST)<VARNAM: 0↔>}
03900
04000 ;FATAL ERROR MESSAGE.
04100 DEFINE FATAL(STR){PUSHJ P,FATAL.↔ASCIZ/STR/}
04200 FATAL.:OUTSTR[BYTE(7)15,12,106,101,124↔"AL - "⊗1↔0]
04300 OUTSTR @(17)↔INCHRW↔GO .-1↔LIT